View Javadoc

1   package uba.db.sql.language;
2   
3   /***
4    * Clase base para las declaraciones de columnas en una sentencia CREATE TABLE.
5    * 
6    * @version $Revision: 1.3 $
7    */
8   public abstract class ColumnDeclarationBehavior implements ColumnDeclaration {
9       private ColumnName columnName;
10      private ColumnConstraintDeclaration constraint;
11  
12      /***
13       * @param columnName
14       *            nombre de la columna.
15       */
16      public ColumnDeclarationBehavior(ColumnName columnName) {
17          this(columnName, ColumnConstraintDeclaration.DEFAULT);
18      }
19  
20      /***
21       * @param columnName
22       *            nombre de la columna
23       * @param constraint
24       *            constraint que indica si la columna puede o no ser null, etc.
25       */
26      public ColumnDeclarationBehavior(ColumnName columnName,
27              ColumnConstraintDeclaration constraint) {
28          this.columnName = columnName;
29          this.constraint = constraint;
30      }
31  
32      /***
33       * @see uba.db.sql.language.ColumnDeclaration#columnName()
34       */
35      public ColumnName columnName() {
36          return columnName;
37      }
38  
39      /***
40       * @see uba.db.sql.language.ColumnDeclaration#constraint()
41       */
42      public ColumnConstraintDeclaration constraint() {
43          return constraint;
44      }
45  
46      /***
47       * @see java.lang.Object#toString()
48       */
49      public String toString() {
50          StringBuffer result = new StringBuffer(columnName.toString());
51  
52          result.append(" ").append(columnTypeAsString());
53          if (!constraint.equals(ColumnConstraintDeclaration.DEFAULT)) {
54              result.append(" ").append(constraint);
55          }
56  
57          return result.toString();
58      }
59  
60      /***
61       * Las subclases debe implementar este metodo para retornar una
62       * representación en String del tipo de la columna.
63       */
64      protected abstract String columnTypeAsString();
65  }